@import 'ui-variables';

.spinner {
  margin: 0;
  width: 94px;
  text-align: center;
  opacity: 1;
  transition: opacity 0.2s linear;
  pointer-events: none;
}

.spinner.hidden {
  opacity: 0;
}
.spinner.paused {
  > div {
    // important. animating with opacity 0 chews up about 5% cpu
    animation-play-state: paused;
  }
}

.spinner-cover {
  &.hidden {
    opacity: 0;
  }
}

.spinner > div {
  width: 14px;
  height: 14px;

  border-radius: 100%;
  border: 1px solid @gray-light;
  display: inline-block;
  animation: bouncedelay 1.1s infinite cubic-bezier(0.45, 0.05, 0.55, 0.95);
  /* Prevent first frame from flickering when animation starts */
  animation-fill-mode: both;
  margin-right: 4px;
  margin-left: 4px;
}

.spinner .bounce1 {
  animation-delay: -0.34s;
}
.spinner .bounce2 {
  animation-delay: -0.22s;
}
.spinner .bounce3 {
  animation-delay: -0.12s;
}
.spinner .bounce4 {
  animation-delay: 0s;
}

@keyframes bouncedelay {
  0%,
  80%,
  100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
